Django এর static ট্যাগ এবং এর ব্যবহার

Web Development - জ্যাঙ্গো (Django) - Django: Static Files এবং CSS/JavaScript ইন্টিগ্রেশন
171

Django একটি ওয়েব ফ্রেমওয়ার্ক যা ডাইনামিক কনটেন্ট ব্যবস্থাপনার পাশাপাশি স্ট্যাটিক ফাইল (যেমন CSS, JavaScript, ইমেজ) পরিচালনার জন্য একটি শক্তিশালী সিস্টেম সরবরাহ করে। Django-তে স্ট্যাটিক ফাইলগুলি static ট্যাগের মাধ্যমে ব্যবহার করা হয়, যা টেমপ্লেটে এই ফাইলগুলো সঠিকভাবে লোড করার জন্য প্রয়োজনীয় পথ (URL) প্রদান করে।


Static Files কী?

Static files হল ফাইলগুলো যেগুলোর কন্টেন্ট পরিবর্তন হয় না, যেমন:

  • CSS ফাইল
  • JavaScript ফাইল
  • Images (যেমন logo, banners, icons)
  • Fonts

Django-এর স্ট্যাটিক ফাইল সিস্টেম ব্যবস্থাপনা খুবই সহজ, এবং এটি ডেভেলপারদের পক্ষে দ্রুত এবং কার্যকরী স্ট্যাটিক ফাইল ম্যানেজমেন্ট প্রদান করে।


Django তে Static ফাইলের সেটআপ

স্ট্যাটিক ফাইল ব্যবহারের জন্য Django-তে কিছু প্রাথমিক কনফিগারেশন করতে হয়।

১. Settings.py তে Static Files কনফিগারেশন

Django-তে স্ট্যাটিক ফাইলের পথ নির্ধারণ করার জন্য settings.py ফাইলে কিছু কনফিগারেশন যোগ করতে হয়।

# settings.py

STATIC_URL = '/static/'  # Static ফাইলগুলোর জন্য URL path
STATICFILES_DIRS = [
    BASE_DIR / "static",  # Base directory তে Static ফাইল রাখার জন্য
]

এছাড়া STATIC_ROOT সেটিংটি production environment-এ স্ট্যাটিক ফাইলগুলো সংগ্রহ করতে ব্যবহৃত হয়।

STATIC_ROOT = BASE_DIR / 'staticfiles'  # Deployment এর জন্য স্ট্যাটিক ফাইলগুলি এখানে সংরক্ষণ করা হবে

২. Static Files জন্য Static Directory তৈরি করা

আপনি সাধারণত আপনার Django প্রোজেক্টে static/ নামের একটি ডিরেক্টরি তৈরি করবেন যেখানে CSS, JS, এবং ইমেজ ফাইল রাখা হবে।

এছাড়া, অ্যাপ-ভিত্তিক স্ট্যাটিক ফাইলগুলোর জন্য প্রতিটি Django অ্যাপের মধ্যে আলাদা static/ ডিরেক্টরি থাকতে পারে।


Django তে Static ট্যাগ ব্যবহার

Django তে স্ট্যাটিক ফাইলগুলোকে টেমপ্লেটের মধ্যে ইনক্লুড করতে {% static %} ট্যাগ ব্যবহার করা হয়। এই ট্যাগটি স্ট্যাটিক ফাইলের সঠিক URL তৈরি করে দেয়, যা ডেভেলপারদের স্ট্যাটিক ফাইলের পাথ ম্যানুয়ালি সেট করতে হয় না।

১. Static ট্যাগ ব্যবহার

প্রথমে, টেমপ্লেটের শুরুর দিকে {% load static %} ট্যাগটি যোগ করতে হবে, এরপর আপনি {% static %} ট্যাগ ব্যবহার করে স্ট্যাটিক ফাইলের পাথটি উল্লেখ করতে পারেন।

<!-- HTML টেমপ্লেট -->
{% load static %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Website</title>
    <!-- Static CSS ফাইল লোড -->
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body>
    <h1>Welcome to My Website!</h1>

    <!-- Static Image লোড -->
    <img src="{% static 'images/logo.png' %}" alt="Logo">

    <!-- Static JS ফাইল লোড -->
    <script src="{% static 'js/app.js' %}"></script>
</body>
</html>

এখানে:

  • {% static 'css/style.css' %}: এটি static/css/style.css ফাইলের সঠিক URL প্রদান করবে।
  • {% static 'images/logo.png' %}: এটি static/images/logo.png ফাইলের সঠিক URL প্রদান করবে।
  • {% static 'js/app.js' %}: এটি static/js/app.js ফাইলের সঠিক URL প্রদান করবে।

২. Static ফাইলগুলির URL Paths

আপনি যখন {% static %} ট্যাগ ব্যবহার করেন, এটি আপনার STATIC_URL সেটিং অনুযায়ী URL পাথ তৈরি করে।

  • যদি আপনার STATIC_URL = '/static/' থাকে, তাহলে {% static 'css/style.css' %} পরিণত হবে /static/css/style.css
  • STATIC_URL এর পরিবর্তন হলে, এটি সেই অনুযায়ী পরিবর্তিত হবে।

Static File Serving during Development

ডেভেলপমেন্ট মোডে Django স্বয়ংক্রিয়ভাবে স্ট্যাটিক ফাইলগুলি সঠিকভাবে সার্ভ করে। কিন্তু যখন আপনি প্রোডাকশনে যাবেন, তখন আপনাকে স্ট্যাটিক ফাইলগুলো সার্ভ করার জন্য কিছু অতিরিক্ত কনফিগারেশন করতে হবে।

১. Development Environment

ডেভেলপমেন্ট সার্ভারে স্ট্যাটিক ফাইলগুলি স্বয়ংক্রিয়ভাবে runserver কমান্ডের মাধ্যমে সার্ভ করা হয়।

python manage.py runserver

এটি স্ট্যাটিক ফাইলগুলিকে STATIC_URL এর অধীনে সার্ভ করবে।

২. Production Environment

প্রোডাকশনে, Django আপনাকে স্ট্যাটিক ফাইলগুলো collectstatic কমান্ডের মাধ্যমে একত্রিত করতে বলবে।

python manage.py collectstatic

এটি সমস্ত স্ট্যাটিক ফাইল একত্রিত করে, যা পরে আপনার সের্ভারে সার্ভ করতে হবে।


Static Files এবং Caching

প্রোডাকশনে স্ট্যাটিক ফাইলগুলোর কেচিংয়ের জন্য Django আপনাকে django.contrib.staticfiles.storage.ManifestStaticFilesStorage ব্যবহার করার পরামর্শ দেয়। এটি ফাইলের নামের সাথে hash যোগ করে যাতে ফাইল পরিবর্তিত হলে, নতুন ফাইল লোড হয় এবং ব্রাউজারে কেচিং সমস্যা না হয়।

১. Cashing কনফিগারেশন

# settings.py
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

এটি ফাইলের নামের শেষে একটি ইউনিক hash যোগ করবে, যেমন: style.a7f3b0a9.css


সারাংশ

Django তে static ট্যাগ ব্যবহার করে আপনি খুব সহজে এবং কার্যকরভাবে স্ট্যাটিক ফাইল ম্যানেজ করতে পারেন। স্ট্যাটিক ফাইলগুলো সঠিকভাবে লোড করতে এবং ব্যবস্থাপনা করতে Django বেশ কিছু বিল্ট-ইন সুবিধা প্রদান করে, যা ডেভেলপারদের সময় সাশ্রয়ী এবং সহজভাবে ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...